package com.fs.mjx.Dao;

import com.fs.mjx.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface UserDao {
    User queryById(Integer userId);//查询单个用户的信息
    List<User> queryAll();
    int insertByUser(User user);
    int deleteByUser(User user);
    int updateByUser(User user);//逻辑删除（只是更新deleted的状态）
    int deleteById(int userId);//物理删除
    int deleteByIds(@Param("userIds") Set<Integer> userIds);//批量逻辑删除 @Param注解的作用是给参数命名，参数命名后就能够根据名字得到参数值，正确的将参数传到sql语句中
    List<User> queryByColumn( @Param("columnValue") String columnValue);//按地址模糊查询
    //根据用户姓名、电话、角色名进行模糊查询
    Set<User> queryByMultiConditions(@Param("userName") String userName, @Param("userPhone") String userPhone, @Param("roleName") String roleName);

}
